package com.psp.web.service;

import com.psp.web.controller.res.bean.RAddressDetailBean;
import com.psp.web.controller.res.bean.RAddressListBean;
import com.psp.web.controller.res.bean.RAreaListBean;
import com.psp.web.service.exception.ServiceException;
import com.psp.web.service.impl.PageResult;

public interface AddressService {

	/**
	 * 获取用户地址列表
	 * 
	 * @param page
	 * @param pageSize
	 * @param uid
	 * @return
	 */
	PageResult<RAddressListBean> getList(int page, int pageSize, String uid, Integer type);

	/**
	 * 用户地址修改、保存
	 * 
	 * @param uid
	 * @param aid
	 *            为空表示新增，不为空表示修改
	 * @param addressee
	 * @param phone
	 * @param detail
	 * @param areaId
	 * @param pcds
	 *            省,市,区县,街道 逗号分隔
	 * @return
	 */
	boolean save(String uid, String aid, String addressee, String phone, String detail, String pcds, Integer type)
			throws ServiceException;

	/**
	 * 删除
	 * 
	 * @param uid
	 * @param aid
	 * @return
	 * @throws ServiceException
	 */
	boolean deleteById(String uid, String aid) throws ServiceException;

	/**
	 * 设置为默认的地址
	 * 
	 * @param uid
	 * @param aid
	 * @return
	 * @throws ServiceException
	 */
	boolean setDefault(String uid, String aid) throws ServiceException;

	/**
	 * 获取地址详情
	 * 
	 * @param aid
	 * @return
	 */
	RAddressDetailBean getDetail(String aid);

	/**
	 * 获取区域列表，查询下级列表
	 * 
	 * @param adcode，为空默认返回省列表，不为空返回下一级列表
	 * @return
	 */
	PageResult<RAreaListBean> getAreas(String adcode);

	/**
	 * 获取区域，省、市、区县
	 * 
	 * @return
	 */
	PageResult<RAreaListBean> getAreas();

}
